#ifndef __DYNAMICARRAY_H_
#define __DYNAMICARRAY_H_

#define ElementType void*   //万能数组
#include<stdbool.h>


struct DynamicArray;   //给一个结构体的前置声明    声明写在头文件，定义写在原文件
typedef struct DynamicArray DArray;


DArray* InitDArray(int capacity); // 初始化函数


void InsertTail(DArray*array,ElementType element); //添加函数

void PrintDArray(DArray*array,void (*print)(ElementType));//打印函数

ElementType* FindByElement(DArray*a,ElementType element);//按照 数值 寻找数组中的 某个 数

void RemoveByIndex(DArray*array,int index);//根据编号删除

void RemoveByElement(DArray*array,ElementType element);//根据值删除



void Sort(DArray*a,bool(*Compare)(ElementType ,ElementType));

void FreeDArray(DArray*array,void(*Free)(ElementType));
#endif